﻿using Manicure.Entity;
using Site.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Manicure.Interface;
using MySql.Data.MySqlClient;
using System.Data;

namespace Manicure.Business
{
    public class BMenu : DataAccess, IMetodos<EMenu, EResultado<EMenu>>, IDisposable
    {
        #region IDisposable Members

        [NonSerialized]
        private bool Disposed = false;
        /// <summary>
        /// Destructor da classe. Executa o método Dispose() para liberar recursos.
        /// </summary>
        ~BMenu()
        {
            this.Dispose(false);
        }

        /// <summary>
        /// Libera os recursos usados pela classe. Implementa o método Dispose().
        /// </summary>
        void IDisposable.Dispose()
        {
            // Para o garbage collector para limpesa. Cleaning up twice.                                
            Dispose(true);
            GC.SuppressFinalize(this);
        }

        /// <summary>
        /// Libera os recursos usados pela classe. Evita que um objeto seja liberado duas vezes.
        /// </summary>
        /// <param name="disposing"></param>
        private void Dispose(bool disposing)
        {
            if (!this.Disposed)
            {
                if (disposing)
                {
                    //free any managed resources
                }
                //free unmanaged resources
            }
            Disposed = true;
        }

        #endregion

        #region IMetodo Members
        public EResultado<EMenu> Buscar(EMenu eEntidade)
        {
            EResultado<EMenu> eResultadoMenu = new EResultado<EMenu>();
            List<EMenu> lstEMenu = new List<EMenu>();
            DataTable dtMenu = new DataTable();
            try
            {
                eEntidade.IdCliente = 1;
                DataAccessParameters.Clear();
                DataAccessParameters.Add("IdCliente", MySqlDbType.Int32).Value = eEntidade.IdCliente;

                dtMenu = ExecuteDataTable("Jp_Cliente_Menu_Listar");

                if (dtMenu != null && dtMenu.Rows.Count > 0)
                {
                    for (int i = 0; i < dtMenu.Rows.Count; i++)
                    {
                        lstEMenu.Add(new EMenu(dtMenu.Rows[i]));
                    }

                    eResultadoMenu.eResultado = lstEMenu;
                    eResultadoMenu.Sucesso = true;
                }
                else
                {
                    eResultadoMenu.Sucesso = false;
                    eResultadoMenu.eResultado = null;
                }
            }
            catch (Exception ex)
            {
                eResultadoMenu.Msg = "Erro ao Buscar Cliente";
                eResultadoMenu.MsgErro = ex.ToString();
                eResultadoMenu.Sucesso = false;
                eResultadoMenu.Retorno = null;
            }

            return eResultadoMenu;
        }

        public EResultado<EMenu> Deletar(EMenu eEntidade)
        {
            throw new NotImplementedException();
        }

        public EResultado<EMenu> Gravar(EMenu eEntidade)
        {
            throw new NotImplementedException();
        }
        #endregion



    }
}
